Skip to content

Latest commit

 

History

History
310 lines (285 loc) · 7.57 KB

File metadata and controls

310 lines (285 loc) · 7.57 KB

JS-SDK 提供了高级功能可直接对文档进行操作,以下是高级功能的调用流程。

1. 等待文档加载完成

await demo.ready() // 务必等待 demo ready 之后再调用高级 api,demo 对象是指 JS-SDK 实例化后的对象,参考使用说明->初始化

2. 获取文档对象

// 文字
const wordApp = demo.WordApplication()
// 表格
const excelApp = demo.ExcelApplication()
// 演示
const pptApp = demo.PPTApplication()
// PDF
const pdfApp = demo.PDFApplication()

// 自动识别
const app = demo.Application

3. 使用高级功能

以下对文字文件、表格文件、演示文件、PDF 文件等类型使用高级功能进行列举介绍,如需了解上述类型支持的文件格式,请参见 规则与限制

文字文件

::: 获取总页数 ```plaintext /* * @param: WdInformation: { * wdNumberOfPagesInDocument: 4 * } * @return: {PagesCount: number, End: boolean} */ const app = demo.WordApplication() const {Enum} = app let totalPages = await app.ActiveDocument.Range.Information(Enum.WdInformation.wdNumberOfPagesInDocument) if (totalPages.End) { // 获取总页数是异步过程,仅当totalPages.End为true时,获取到的总页数才是准确的 console.log("加载完了!一共", totalPages.PagesCount, "页") } ``` ::: ::: 获取当前页 ```plaintext /* * @param: WdInformation: { * wdActiveEndPageNumber: 3 * } * @return: number */ const app = demo.WordApplication() const {Enum} = app let currentPage = await app.ActiveDocument.Selection.Information(Enum.WdInformation.wdActiveEndPageNumber) ``` ::: ::: 跳转到指定页 ```plaintext /* * @param: { What?: WdGoToItem, Which?: WdGoToDirection.wdGoToAbsolute, Count?: number, Name?: string} * WdGoToItem: { * wdGoToPage: 1, * } * WdGoToDirection: { * wdGoToAbsolute: 1 * } * @return: number 返回跳转页 */ const app = demo.WordApplication() const {Enum} = app const page = await app.ActiveDocument.Selection.GoTo(Enum.WdGoToItem.wdGoToPage, Enum.WdGoToDirection.wdGoToAbsolute, 10) // 或者 const page = await app.ActiveDocument.Selection.GoTo({ What: Enum.WdGoToItem.wdGoToPage, Which: Enum.WdGoToDirection.wdGoToAbsolute, Count: 10 }) ``` ::: ::: 设置评论显示 ```plaintext /* * @param: bool * true 为显示, false 为隐藏 */

// 隐藏评论 demo.WordApplication().ActiveDocument.ActiveWindow.View.ShowComments = false

:::
::: 设置目录显示
```plaintext
  /*
  * @param: bool
  * true 为显示, false 为隐藏
  */

  // 隐藏目录
  demo.WordApplication().ActiveDocument.ActiveWindow.DocumentMap = false

::: ::: 视图缩放

  /*
  * @return: number
  */
  await demo.WordApplication().ActiveDocument.ActiveWindow.View.Zoom.Percentage  // 读取视图缩放比例

  /*
  * @param : 50 <= number <= 300 (缩放属性值在50%到 300%之间)
  */
  demo.WordApplication().ActiveDocument.ActiveWindow.View.Zoom.Percentage = 100  // 设置视图缩放比例

:::

表格文件

::: 获取所有 sheet 名称 ```plaintext const app = demo.ExcelApplication() const Names = [] const count = await app.Sheets.Count; for(let index = 1; index <= count; index++) { Names.push(await app.Sheets.Item(index).Name); } console.log(Names) ``` ::: ::: 获取当前 sheet 名称 ```plaintext const app = demo.ExcelApplication() const name = await app.ActiveSheet.Name ``` ::: ::: 切换到指定 sheet ```plaintext const app = demo.ExcelApplication() const sheetIndex = 1 // sheets序号, 从1开始 app.Sheets.Item(sheetIndex).Activate() // 切换sheet ``` ::: ::: 视图缩放 ```plaintext /* * @return: number */ await demo.ExcelApplication().ActiveWorkbook.ActiveSheetView.Zoom // 读取视图缩放比例 /* * @param : 10 <= number <= 500 (缩放属性值在10%到500%之间) */ demo.ExcelApplication().ActiveWorkbook.ActiveSheetView.Zoom = 100 // 设置视图缩放比例 ``` :::

演示文件

::: 获取总页数 ```plaintext /* * @return: number */ let totalPages = await demo.PPTApplication().ActivePresentation.Slides.Count ``` ::: ::: 获取当前页 ```plaintext /* * @return: number */ let totalPages = await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.Slide.SlideIndex ``` ::: ::: 跳转到指定页 ```plaintext /* * @param: number */ await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.GotoSlide(3) // 跳转到第三页 ``` ::: ::: 播放幻灯片 ```plaintext await demo.PPTApplication().ActivePresentation.SlideShowSettings.Run() ``` ::: ::: 退出播放 ```plaintext await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.Exit() ``` ::: ::: 幻灯片下一步动画 ```plaintext await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.GotoNextClick() ``` ::: ::: 幻灯片上一步动画 ```plaintext await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.GotoPreClick() ``` ::: ::: 获取播放状态 ```plaintext /* * @return: string ('preview' | 'play') */ let currentState = await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.State ``` ::: ::: 视图缩放 ```plaintext /* * @return: number */ await demo.PPTApplication().ActivePresentation.View.Zoom // 读取视图缩放比例 /* * @param : 1 <= number <= 400 (缩放属性值在1%到400%之间) */ demo.PPTApplication().ActivePresentation.View.Zoom = 100 // 设置视图缩放比例(非播放模式) ``` :::

PDF 文件

::: 获取总页数 ```plaintext /* * @return: number */ let totalPages = await demo.PDFApplication().ActivePDF.PagesCount ``` ::: ::: 获取当前页 ```plaintext /* * @return: number */ let totalPages = await demo.PDFApplication().ActivePDF.CurrentPage ``` ::: ::: 跳转到指定页 ```plaintext /* * @param : { PageNum: number } */ let PageNum = 10 await demo.PDFApplication().ActivePDF.JumpToPage({PageNum}) ``` ::: ::: 设置页面渲染模式 ```plaintext /* * 1:单页模式 * 0:多页模式 */

demo.PDFApplication().ActivePDF.PageMode = 1 // 设置为单页模式

:::
::: 设置目录显示
```plaintext
  /*
  * true:显示目录
  * false:隐藏目录
  */
  demo.PDFApplication().ActivePDF.DocumentMap = true	// 显示目录

::: ::: 视图缩放

  /*
  * @return: number
  */
  await demo.PDFApplication().ActivePDF.Zoom  // 读取视图缩放比例
  /*
  * @param : 1 <= number <= 400 (缩放属性值在1%到400%之间)
  */
  demo.PDFApplication().ActivePDF.Zoom = 100  // 设置视图缩放比例

::: ::: 事件监听 可以通过实例的 on 方法监听事件。

demo.on('事件名', function(data) {
    // do something...
})
事件名 说明
fileOpen 文件打开成功或者失败时的事件回调
error 错误发生时的事件回调,会返回错误码
fileStatus 文件保存的事件回调,会返回状态 status 值:0表示文档无更新,1表示版本保存成功,2表示暂不支持保存空文件,3表示空间已满,4表示保存中请勿频繁操作,5表示保存失败,6表示文件更新保存中,触发场景:修改文档内容触发的保存,7表示文档内容修改保存成功

:::